/*
 * DERECHOS DE AUTOR (C) 2014 POR Jose Carlos Palma.
 *
 * TODOS LOS DERECHOS RESERVADOS. NINGUNA PARTE  DE ESTE CÓDIGO FUENTE 
 * PUEDE SER REPRODUCIDA O TRANSMITIDA O UTILIZADA EN  CUALQUIER FORMA 
 * O POR CUALQUIER  MEDIO, YA SEA  ELECTRÓNICO O MECÁNICO,  INCLUYENDO 
 * EL FOTOCOPIADO, GRABACIÓN O POR CUALQUIER SISTEMA DE ALMACENAMIENTO 
 * O RECUPERACIÓN DE INFORMACIÓN SIN  EL PERMISO PREVIO Y  POR ESCRITO
 * DEL PROPIETARIO DE LOS DERECHOS DE AUTOR.
 */
package org.dwh.pivot;

import java.io.File;

/**
 *
 * @author Jose Carlos Palma
 * @version v1.0
 */
public class Cubo {

    /**
     * Id del cubo.
     */
    private int id = -1;
    /**
     * Nombre del cubo.
     */
    private String nm;
    /**
     * Ruta del cubo (sin la Unidad de disco).
     */
    private String path;
    /**
     * Categoría del cubo.
     */
    private String cgy;
    /**
     * Estado del cubo, Activo (S) e Inactivo (N).
     */
    private String actv;
    /**
     * Si contiene una copia comprimida.
     */
    private String zip;

    /**
     * Crea una instancia de Cubo.
     *
     * @param id es el id del cubo (PK_CUBO).
     * @param name es el nombre del cubo.
     * @param path es el path (ruta) donde se almacena el cubo.
     * @param cat es la categoría del cubo.
     * @param actv indica si el cubo está activo (S) o no (N).
     * @param zip indica si el archivo tiene que comprimirse.
     */
    public Cubo(int id, String name, String path, String cat, String actv, String zip) {
        this.id = id;
        this.nm = name;
        this.path = path;
        this.cgy = cat;
        this.actv = actv.toUpperCase();
        this.zip = zip.toUpperCase();
    }

    /**
     * Devuelve el nombre completo del cubo (incluyendo Unidad de disco y ruta
     * completa).
     *
     * @return un String con el nombre completo del cubo.
     */
    public String getFullName() {
        return System.getProperty("cubo.unidad") + path + nm;
    }

    /**
     * Devuelve el id del cubo.
     *
     * @return the id
     */
    public int getId() {
        return id;
    }

    /**
     * Devuelve el nombre del cubo.
     *
     * @return the nm
     */
    public String getNm() {
        return nm;
    }

    /**
     * Devuelve la ruta del cubo.
     *
     * @return the path
     */
    public String getPath() {
        return path;
    }

    /**
     * Devuelve la categoría del cubo.
     *
     * @return the cgy
     */
    public String getCgy() {
        return cgy;
    }

    /**
     * Devuelve el estado del cubo (S/N).
     *
     * @return the actv
     */
    public String getActv() {
        return actv;
    }

    /**
     * Indica si tiene una copia comprimida (S/N).
     *
     * @return the zip
     */
    public String getZip() {
        return zip;
    }

    /**
     *
     * Retorna el tamaño del cubo en KB.
     *
     * @return un long que representa el tamaño del cubo en KB.
     */
    public long getSize() {
        long retVal;
        retVal = new File(getFullName()).length() / 1024;
        return retVal;
    }
}
